package service;

import java.util.List;

import dao.AccountDAO;
import domain.Account;

/**
 * 账目Service接口.
 * <p>
 * 创建日期：2010-07-01<br>
 * 创建人：Xiyt<br>
 * 修改日期：<br>
 * 修改人：<br>
 * 修改内容：<br>
 * 
 * @author Xiyt
 * @version 1.0
 */
public interface AccountService {

	/**
	 * 设定账目DAO
	 * */
	public void setAccountDao(AccountDAO accountDao);

	/**
	 * 根据账目ID查询账目信息
	 * @param accountId 账目ID
	 * @return Account 账目
	 */
	public Account selectByPrimaryKey(int accountId);

	/**
	 * 根据条件查询账目数量
	 * @param paramAccount 账目条件
	 * @return int 账目数量
	 */
	public int countByCriteria(Account paramAccount);
	
	/**
	 * 根据条件查询账目列表
	 * @param paramAccount 账目条件
	 * @return List 账目列表
	 */
	public List<Account> selectByCriteria(Account paramAccount);
	

	/**
	 * 根据条件查询账目列表带分页
	 * @param paramAccount 账目条件
	 * @return List 账目列表
	 */
	public List<Account> selectByCriteriaForPaging(Account paramAccount);

	/**
	 * 添加账目
	 * @param account 账目
	 */
	public void insert(Account account);

	/**
	 * 修改账目
	 * @Description: 修改账目
	 * @param account 账目
	 */
	public void update(Account account);
	

	/**
	 * 删除账目
	 * @param accountIds 账目IDS
	 */
	public void delete(String accountIds);
	
	/**
	 * 计算合计
	 * @return 合计值
	 */
	public double getTotalMoney(Account paramAccount);
	
	/**
	 * 当前合计
	 * @param paramAccount 账目条件
	 * @return 当前合计值
	 */
	public double getCurrentMoney(Account paramAccount);
	
	/**
	 * 根据条件分组查询账目收支金额
	 * @param paramAccount 账目条件
	 * @return List 账目列表
	 */
	public List<Account> getGroupSumMoney(Account paramAccount);
	
}
